package com.ruoyi.web.petmall.petback.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.web.petmall.entity.AddressEntity;
import com.ruoyi.web.petmall.entity.TypeEntity;
import com.ruoyi.web.petmall.petback.service.TypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
@RequestMapping(value ="/petBack/petType")
@Api(tags = "宠物分类管理")
public class TypeController extends BaseController {

    @Autowired
    private TypeService typeService;

    /**
     * 查询宠物分类列表
     * @param typeEntity 查询条件
     * @return 分页结果
     */
    @ApiOperation("查询宠物分类列表")
    @GetMapping("/list")
    public TableDataInfo list(TypeEntity typeEntity) {
        startPage(); // 启动分页
        List<TypeEntity> list = typeService.getPetType(typeEntity); // 调用服务层获取宠物分类列表
        return getDataTable(list); // 封装并返回分页数据
    }

    /**
     * 添加宠物分类
     * @param typeEntity 待添加的宠物分类信息
     * @return 操作结果
     */
    @ApiOperation("添加宠物分类")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody TypeEntity typeEntity) {
        return toAjax(typeService.addPetType(typeEntity)); // 调用服务层添加宠物分类
    }

    /**
     * 修改宠物分类
     * @param typeEntity 待修改的宠物分类信息
     * @return 操作结果
     */
    @ApiOperation("修改宠物分类")
    @PutMapping("/update")
    public AjaxResult update(@RequestBody TypeEntity typeEntity) {
        return toAjax(typeService.updatePetType(typeEntity)); // 调用服务层修改宠物分类
    }

    /**
     * 删除宠物分类
     * @param typeId 待删除的宠物分类ID
     * @return 操作结果
     */
    @ApiOperation("删除宠物分类")
    @DeleteMapping("/delete/{typeId}")
    public AjaxResult delete(@PathVariable("typeId") Long typeId) {
        return toAjax(typeService.deletePetType(typeId)); // 调用服务层删除宠物分类
    }
}
